/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Wires;

import EA_Model.IEC61970.Domain.AbsoluteDateTime;
import EA_Model.IEC61970.Domain.Conductance;
import EA_Model.IEC61970.Domain.ReactivePower;
import EA_Model.IEC61970.Domain.Seconds;
import EA_Model.IEC61970.Domain.Susceptance;
import EA_Model.IEC61970.Domain.Voltage;
import EA_Model.IEC61970.Domain.VoltagePerReactivePower;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Shunt Compensator</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getAVRDelay <em>AVR Delay</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getB0PerSection <em>B0 Per Section</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getBPerSection <em>BPer Section</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getG0PerSection <em>G0 Per Section</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getGPerSection <em>GPer Section</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getMaximumSections <em>Maximum Sections</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getMaxU <em>Max U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getMinU <em>Min U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getNomQ <em>Nom Q</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getNomU <em>Nom U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getNormalSections <em>Normal Sections</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getReactivePerSection <em>Reactive Per Section</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getSwitchOnCount <em>Switch On Count</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getSwitchOnDate <em>Switch On Date</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.ShuntCompensator#getVoltageSensitivity <em>Voltage Sensitivity</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator()
 * @model
 * @generated
 */
public interface ShuntCompensator extends RegulatingCondEq {
	/**
	 * Returns the value of the '<em><b>AVR Delay</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>AVR Delay</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>AVR Delay</em>' reference.
	 * @see #setAVRDelay(Seconds)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_AVRDelay()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getAVRDelay();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getAVRDelay <em>AVR Delay</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>AVR Delay</em>' reference.
	 * @see #getAVRDelay()
	 * @generated
	 */
	void setAVRDelay(Seconds value);

	/**
	 * Returns the value of the '<em><b>B0 Per Section</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>B0 Per Section</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>B0 Per Section</em>' reference.
	 * @see #setB0PerSection(Susceptance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_B0PerSection()
	 * @model ordered="false"
	 * @generated
	 */
	Susceptance getB0PerSection();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getB0PerSection <em>B0 Per Section</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>B0 Per Section</em>' reference.
	 * @see #getB0PerSection()
	 * @generated
	 */
	void setB0PerSection(Susceptance value);

	/**
	 * Returns the value of the '<em><b>BPer Section</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>BPer Section</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>BPer Section</em>' reference.
	 * @see #setBPerSection(Susceptance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_BPerSection()
	 * @model ordered="false"
	 * @generated
	 */
	Susceptance getBPerSection();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getBPerSection <em>BPer Section</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>BPer Section</em>' reference.
	 * @see #getBPerSection()
	 * @generated
	 */
	void setBPerSection(Susceptance value);

	/**
	 * Returns the value of the '<em><b>G0 Per Section</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>G0 Per Section</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>G0 Per Section</em>' reference.
	 * @see #setG0PerSection(Conductance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_G0PerSection()
	 * @model ordered="false"
	 * @generated
	 */
	Conductance getG0PerSection();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getG0PerSection <em>G0 Per Section</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>G0 Per Section</em>' reference.
	 * @see #getG0PerSection()
	 * @generated
	 */
	void setG0PerSection(Conductance value);

	/**
	 * Returns the value of the '<em><b>GPer Section</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>GPer Section</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>GPer Section</em>' reference.
	 * @see #setGPerSection(Conductance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_GPerSection()
	 * @model ordered="false"
	 * @generated
	 */
	Conductance getGPerSection();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getGPerSection <em>GPer Section</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>GPer Section</em>' reference.
	 * @see #getGPerSection()
	 * @generated
	 */
	void setGPerSection(Conductance value);

	/**
	 * Returns the value of the '<em><b>Maximum Sections</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Maximum Sections</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Maximum Sections</em>' reference.
	 * @see #setMaximumSections(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_MaximumSections()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getMaximumSections();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getMaximumSections <em>Maximum Sections</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Maximum Sections</em>' reference.
	 * @see #getMaximumSections()
	 * @generated
	 */
	void setMaximumSections(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Max U</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Max U</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Max U</em>' reference.
	 * @see #setMaxU(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_MaxU()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getMaxU();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getMaxU <em>Max U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Max U</em>' reference.
	 * @see #getMaxU()
	 * @generated
	 */
	void setMaxU(Voltage value);

	/**
	 * Returns the value of the '<em><b>Min U</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Min U</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Min U</em>' reference.
	 * @see #setMinU(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_MinU()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getMinU();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getMinU <em>Min U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Min U</em>' reference.
	 * @see #getMinU()
	 * @generated
	 */
	void setMinU(Voltage value);

	/**
	 * Returns the value of the '<em><b>Nom Q</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Nom Q</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Nom Q</em>' reference.
	 * @see #setNomQ(ReactivePower)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_NomQ()
	 * @model ordered="false"
	 * @generated
	 */
	ReactivePower getNomQ();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getNomQ <em>Nom Q</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Nom Q</em>' reference.
	 * @see #getNomQ()
	 * @generated
	 */
	void setNomQ(ReactivePower value);

	/**
	 * Returns the value of the '<em><b>Nom U</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Nom U</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Nom U</em>' reference.
	 * @see #setNomU(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_NomU()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getNomU();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getNomU <em>Nom U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Nom U</em>' reference.
	 * @see #getNomU()
	 * @generated
	 */
	void setNomU(Voltage value);

	/**
	 * Returns the value of the '<em><b>Normal Sections</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Normal Sections</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Normal Sections</em>' reference.
	 * @see #setNormalSections(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_NormalSections()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getNormalSections();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getNormalSections <em>Normal Sections</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Normal Sections</em>' reference.
	 * @see #getNormalSections()
	 * @generated
	 */
	void setNormalSections(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Reactive Per Section</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Reactive Per Section</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Reactive Per Section</em>' reference.
	 * @see #setReactivePerSection(ReactivePower)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_ReactivePerSection()
	 * @model ordered="false"
	 * @generated
	 */
	ReactivePower getReactivePerSection();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getReactivePerSection <em>Reactive Per Section</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Reactive Per Section</em>' reference.
	 * @see #getReactivePerSection()
	 * @generated
	 */
	void setReactivePerSection(ReactivePower value);

	/**
	 * Returns the value of the '<em><b>Switch On Count</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Switch On Count</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Switch On Count</em>' reference.
	 * @see #setSwitchOnCount(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_SwitchOnCount()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getSwitchOnCount();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getSwitchOnCount <em>Switch On Count</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Switch On Count</em>' reference.
	 * @see #getSwitchOnCount()
	 * @generated
	 */
	void setSwitchOnCount(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Switch On Date</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Switch On Date</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Switch On Date</em>' reference.
	 * @see #setSwitchOnDate(AbsoluteDateTime)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_SwitchOnDate()
	 * @model ordered="false"
	 * @generated
	 */
	AbsoluteDateTime getSwitchOnDate();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getSwitchOnDate <em>Switch On Date</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Switch On Date</em>' reference.
	 * @see #getSwitchOnDate()
	 * @generated
	 */
	void setSwitchOnDate(AbsoluteDateTime value);

	/**
	 * Returns the value of the '<em><b>Voltage Sensitivity</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Voltage Sensitivity</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Voltage Sensitivity</em>' reference.
	 * @see #setVoltageSensitivity(VoltagePerReactivePower)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getShuntCompensator_VoltageSensitivity()
	 * @model ordered="false"
	 * @generated
	 */
	VoltagePerReactivePower getVoltageSensitivity();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.ShuntCompensator#getVoltageSensitivity <em>Voltage Sensitivity</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Voltage Sensitivity</em>' reference.
	 * @see #getVoltageSensitivity()
	 * @generated
	 */
	void setVoltageSensitivity(VoltagePerReactivePower value);

} // ShuntCompensator
